High Availability Prerequisites
- Before commencing the HA stack deployment, load balancing must be configured for each highly available software component of the CMP
Converged Monetisation Platform. The MDS Global product that supports customer care and billing for digital service providers. stack (except Database).
- The load balancer URLs must be predefined because this information needs to be added to the inventory file via the Installation Configuration Tool.
- When using a load balancer with CMP, the chosen make and model must support the following:
- WebSockets - required for the correct functioning of AgentView
The graphical user interface of the CMP that is typically used by Customer Service Agents to access CMP customer and billing data. In versions prior to CMP 8.0, this was called the CMP GUI./Webswing. - HTTP Health Checks - to determine the status of a service.
- Varying Timeouts - timeouts can vary from short (seconds) to long (hours), needed to support long session timeouts with AgentView.
- Session Affinity - for services such as AgentView and Administration Console
An operations web console that allows batch jobs to be scheduled, run manually and monitored. The console also provides for viewing and modification of business and user applicable system configuration. that have interactive user
A person with the capability to log in to the CMP GUI software, such as a customer service advisor or agent. interfaces requiring a connection to a unique instance for the session.
- WebSockets - required for the correct functioning of AgentView
By default, Ansible expects the shared storage to be mounted as follows:
-
Shared storage for the Artemis messaging server (ActiveMQ
An open source generic message interface written in Java. It fosters the communication from more than one client or server, allowing it to act, for example, a messaging interface between CMP and external components. server) and its broker persistence directory, should be mounted to /var/mdsglobal/amq-broker/datadirectory on all instances that host Artemis Server. - Shared storage for the SABRE server (batch server) should be mounted to
/var/mdsglobal/sabre-serverdirectory on all instances that host SABRE Server. - Shared storage for the Report Server (Pentaho server) should be mounted to
/var/mdsglobal/pentaho-solutionsdirectory on all instances that host Report Server. (See High Availability for Reports). -
Shared storage for the REST
Representational State Transfer. An architectural style that specifies constraints, such as the uniform interface, that if applied to a web service results in performance, scalability, and modifiability, optimising services to work on the Internet. Web Services (Rest API
Application Programming Interface. A set of functions and procedures that allow the creation of applications that access the features or data of another software system, such as an application or operating system. server) should be mounted to /var/mdsglobal/rest-wsdirectory on all instances that host REST-WS Server. -
Shared storage for the Grafana Mimir (Grafana monitoring server) should be mounted to
/var/mdsglobal/mimirdirectory on all instances that host Grafana Server. -
Shared storage for the Bulk Action server (bulk action console server) should be mounted to
/var/mdsglobal/bulk-action-consoledirectory on all instances that host Bulk Action Server.
For the load balancer it is necessary to create the virtual services before an HA CMP installation takes place because URL access is checked during the installation process. The following table contains an example set of load balancer services:
The ports used are the standard ones in the Inventory Configuration. If they are changed as part of the installation then the ports accessed by the load balancer would need to be updated accordingly.
|
Service Name |
Protocol |
Default Port |
Health Check Name |
Timeouts |
Affinity |
|---|---|---|---|---|---|
|
AgentView / Pentaho |
HTTP/HTTPS |
Port 7443 |
/healthCheck/agent-view |
28,800 seconds (8 hours) |
Auto generated session Cookie |
|
WSO2 Identity Server |
HTTP/HTTPS |
Port 9443 |
/healthCheck/wso2is |
30 seconds |
Client IP |
|
Role Extender |
HTTP/HTTPS |
Port 8081 |
/healthCheck/role-extender |
30 seconds |
None |
|
SOAP Web Services |
HTTP/HTTPS |
Port 8443 |
|
30 seconds |
None |
|
REST Web Services |
HTTP/HTTPS |
Port 9000 |
/healthCheck/rest-ws |
30 seconds |
None |
|
Business Configuration |
HTTP/HTTPS |
Port 8443 |
/healthCheck/configuration-centre |
30 seconds |
Client IP |
|
Bulk Action Console |
HTTP/HTTPS |
Port 9009 |
/healthCheck/bulk-action-console |
30 seconds |
Client IP |
|
CMP Administration Console |
HTTP/HTTPS |
Port 31212 |
/healthCheck/sabre-console |
30 seconds |
Client IP |
|
Artemis / ActiveMQ Broker |
TCP/SSL |
Port 61616 |
/healthCheck/apache-activemq-broker |
30 seconds |
None |
|
Artemis / ActiveMQ Console |
HTTP/HTTPS |
Port 8161 |
/healthCheck/apache-activemq-console |
30 seconds |
Client IP |
|
Shared Services |
HTTP/HTTPS |
Port 21218 |
/healthCheck/shared-services-rest |
30 seconds |
None |
|
SAM Services |
HTTP/HTTPS |
Port 21220 |
/healthCheck/sam-services |
30 seconds |
None |
|
Voucher Management Services |
HTTP/HTTPS |
Port 21223 |
/healthCheck/voucher-management-services |
30 seconds |
None |
|
Context Sensitive Help |
HTTP/HTTPS |
Port 21221 |
/healthCheck/context-sensitive-help |
30 seconds |
None |
|
SPaRC Engine |
HTTP/HTTPS |
Port 21222 |
/healthCheck/sparc-engine |
30 seconds |
None |
For the load balancer services DNS names must be configured in the CMP inventory. As described above these are needed BEFORE the installation of CMP is started.
Note:
If host and path rules are used in the load balancer to direct traffic to the correct services, only DNS subdomain configurations are supported and not path rules.
For example the following are valid:
wso2is.cmp8.com
soap-services.cmp8.comHowever, the following are invalid:
www.cmp8.com/wso2is
www.cmp8.com/soap-servicesThis is because certain services such as WSO2IS have in-built redirects from the root context(/) that override any paths that have been configured as part of the load balancer rules.
High Availability for Reports
Recommendations:
- Report Server (the Pentaho server) should be deployed to all AgentView hosts. This must be manually configured in the Installation Configuration Tool.
- Report Server should make use of shared storage as described above. This reduces the confusion/complexity of report output being stored on multiple hosts
- Run Report Server in an Active/Active state so that end users do not need to consider switching on/off schedules between active/passive nodes as needed.